home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Oh!X 2000 Spring
/
Oh!X 2000 Spring Special CD-ROM (Japan) (Part 1).7z
/
Oh!X 2000 Spring Special CD-ROM (Japan) (Part 1).bin
/
F2JW
/
trans
/
dic_verb.cpp
< prev
next >
Wrap
C/C++ Source or Header
|
1999-10-11
|
33KB
|
1,166 lines
//
// フランス語→日本語翻訳プログラム 辞書(動詞部)
// ]tre, faire, avoir, allerなど
//
#include "stdafx.h"
#include <string.h>
#include "f2j.h"
#include "score.h"
#include "myprot.h"
extern TOKEN *currentTree;
char *futureVerbTable[] = {
"fleurir",
"" // End Code
};
BOOL
ShouldBeFuture(TOKEN *p)
{
if(p->jpProp & JP_PROP_MOVE)
return(TRUE);
for(int i = 0; futureVerbTable[i][0]; i++) {
if(IsTokenFrench(p, futureVerbTable[i]))
return(TRUE);
}
return(FALSE);
}
const JP_VERB dic_aller[] = {
JP_VERB("%0H.%vt1", JP_KIND_NONE, // 未来形 je vais partir.
JP_PROP_CONDITION,
JP_HINT_SVO,
FR_COMPOSE_ETRE,
FR_PART_NOUN_ALL, JP_PROP_ALL, NULL,
FR_PART_VERB_INF, JP_PROP_NONE, ShouldBeFuture,
FR_PART_NONE, JP_PROP_NONE, NULL
),
JP_VERB("%0H.%c1", JP_KIND_NONE, // 未来形 je vais partir.
JP_PROP_CONDITION,
JP_HINT_SVO,
FR_COMPOSE_ETRE,
FR_PART_NOUN_ALL, JP_PROP_ALL, NULL,
FR_PART_VERB_INF, JP_PROP_NONE, ShouldBeFuture,
FR_PART_NONE, JP_PROP_NONE, NULL
),
JP_VERB("%0H.%c1I.行", JP_KIND_GODAN_KA2, // je vais voir Marie.
JP_PROP_ACTION_MOVE,
JP_HINT_SVO,
FR_COMPOSE_ETRE,
FR_PART_NOUN_ALL, JP_PROP_ALL,
FR_PART_VERB_INF, JP_PROP_ACTION,
FR_PART_NONE, JP_PROP_NONE
),
JP_VERB( "%0H.%t1.", JP_KIND_NONE, // 未来形
JP_PROP_CONDITION,
JP_HINT_SVO,
FR_COMPOSE_ETRE,
FR_PART_NOUN_ALL, JP_PROP_ALL,
FR_PART_VERB_INF, JP_PROP_ALL,
FR_PART_NONE, JP_PROP_NONE
),
JP_VERB( "%0H.%1I.行", JP_KIND_GODAN_KA2,
JP_PROP_ACTION_MOVE,
JP_HINT_SVO,
FR_COMPOSE_ETRE,
FR_PART_NOUN_ALL, JP_PROP_ALL,
FR_PART_PREPOSIT_A, JP_PROP_PLACE | JP_PROP_MOVE,
FR_PART_NONE, JP_PROP_NONE
),
JP_VERB( "%0H.%1I.行", JP_KIND_GODAN_KA2,
JP_PROP_ACTION_MOVE,
JP_HINT_SVO,
FR_COMPOSE_ETRE,
FR_PART_NOUN_ALL, JP_PROP_ALL,
FR_PART_PREPOSIT_DANS, JP_PROP_PLACE,
FR_PART_NONE, JP_PROP_NONE
),
JP_VERB( "%0H.行", JP_KIND_GODAN_KA2,
JP_PROP_ACTION_MOVE,
JP_HINT_SVO, FR_COMPOSE_ETRE,
FR_PART_NOUN_ALL, JP_PROP_ALL,
FR_PART_NONE, JP_PROP_NONE,
FR_PART_NONE, JP_PROP_NONE
),
};
BOOL
Is_Il_Y_A(TOKEN *s, TOKEN *v)
{
if(IsTokenFrench(s, "il")
&& v
&& SearchToken(FR_PART_ADVERB_Y, v->child))
return(TRUE);
return(FALSE);
}
int
CntToken(TOKEN *start, FR_PART frPart)
{
int cnt = 0;
for(TOKEN *p = start; p; p = p->next) {
if(p->frPart & frPart) cnt++;
}
return(cnt);
}
void
Make_Il_Y_A(TOKEN *verb)
{
TOKEN *y = SearchToken(FR_PART_ADVERB_Y, verb->child);
if(y) y->prtControl = PRT_CONTROL_DISABLE;
}
static JP_PREPOSITION dic_il_y_a[] = {
JP_PREPOSITION( "%1前", JP_KIND_NONE, // je l'ai pas vu il y a deux ans.
JP_PROP_TIME,
CMP_TOKEN ( FR_PART_VERB_GENERAL, JP_PROP_ALL),
CMP_TOKEN ( FR_PART_NOUN_GENERAL, JP_PROP_TIME)
),
JP_PREPOSITION( "%1G過ぎ", JP_KIND_TA, // il y a deux ans.
JP_PROP_TIME,
CMP_TOKEN ( FR_PART_NONE, JP_PROP_NONE),
CMP_TOKEN ( FR_PART_NOUN_GENERAL, JP_PROP_TIME)
)
};
PREPOSITION prep_Il_Y_A_time = {
"il y a <time>", FR_PART_PREPOSIT_IL_Y_A, JPPREPOSIT_DIC(dic_il_y_a)
};
BOOL
Is_Il_Y_A_time(TOKEN *s, TOKEN *v)
{
if(IsObjectMatch(s, FR_PART_NOUN_IMPERSONAL)
&& s->frAttrib == FR_ATTRIB_IL
&& v
&& SearchToken(FR_PART_ADVERB_Y, v->child)
&& v->object1
&& (v->object1->jpProp & JP_PROP_TIME)
&& (v->object1->jpProp & JP_PROP_UNIT)
&& CntToken(currentTree, FR_PART_VERB) >= 2)
return(TRUE);
else
return(FALSE);
}
void
Make_Il_Y_A_time(TOKEN *verb)
{
TOKEN *y = SearchToken(FR_PART_ADVERB_Y, verb->child);
if(y) y->prtControl = PRT_CONTROL_DISABLE;
ChangeToPreposition(verb, &prep_Il_Y_A_time);
// sentence->which = &prep_Il_Y_A_time.jpPreposition[prep_Il_Y_A_time.proposed];
verb->which = NULL;
// verb->object1 = v->object1;
verb->jpProp = JP_PROP_TIME;
}
BOOL
CheckVerbNegative(TOKEN *s, TOKEN *v)
{
if(v
&& (v->jpProp & JP_PROP_NEGATIVE))
return(TRUE);
else
return(FALSE);
}
BOOL
HasAdverbQue(TOKEN *p)
{
if(p
&& (p->jpEmphasis & JP_EMPHASIS_ONLY))
return(TRUE);
else
return(FALSE);
}
void
Make_Ne_Avoir_Que_A_INF(TOKEN *verb)
{
verb->jpProp &= ~JP_PROP_NEGATIVE;
if(verb->object1) {
verb->object1->jpEmphasis = JP_EMPHASIS_SEULEMENT;
}
}
void
MakeNoPlus1(TOKEN *verb)
{
verb->jpProp &= ~JP_PROP_NEGATIVE;
if(verb->object1) {
verb->object1->prtControl = (PRT_CONTROL)(verb->object1->prtControl | PRT_CONTROL_NO_PLUS);
}
}
const JP_VERB dic_avoir[] = {
JP_VERB( "%2的なことろが", JP_KIND_ARU, // Il y a du Moli}re dans cette oeuvre.
JP_PROP_CONDITION,
JP_HINT_SVOO,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_IMPERSONAL,JP_PROP_ALL,
FR_PART_ADVERB_Y, JP_PROP_ALL,
FR_PART_PREPOSIT_DE, JP_PROP_UNIQUE
),
JP_VERB( "%1", JP_KIND_NONE, // Ce qu'il y a de meilleur. もっと良い物
JP_PROP_CONDITION,
JP_HINT_SVO,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_IMPERSONAL,JP_PROP_ALL, Is_Il_Y_A,
FR_PART_NOUN_ALL, JP_PROP_NONE, IsNullNoun,
FR_PART_NONE, JP_PROP_NONE, NULL,
Make_Il_Y_A
),
JP_VERB( "%1前", JP_KIND_NONE, // Il y a deux ans
JP_PROP_CONDITION,
JP_HINT_SVO,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_IMPERSONAL,JP_PROP_ALL, Is_Il_Y_A_time,
FR_PART_NOUN_ALL, JP_PROP_TIME, NULL,
FR_PART_NONE, JP_PROP_NONE, NULL,
Make_Il_Y_A_time
),
JP_VERB( "%1G.", JP_KIND_IRU, // Il y a ...
JP_PROP_CONDITION,
JP_HINT_SVO | JP_HINT_PLACE1_ADVERB | JP_HINT_VOLUME1_ADVERB,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_IMPERSONAL,JP_PROP_ALL, Is_Il_Y_A,
FR_PART_NOUN_ALL, JP_PROP_HUMAN, NULL,
FR_PART_NONE, JP_PROP_NONE, NULL,
Make_Il_Y_A
),
JP_VERB( "%0H.%a2必要が", JP_KIND_ARU, // j'ai besoin de dormir.
JP_PROP_CONDITION,
JP_HINT_SVOO,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_ALL, NULL,
FR_PART_NOUN_GENERAL, JP_PROP_ALL, "besoin",
FR_PART_PREPOSIT_DE_INF,JP_PROP_ALL, NULL
),
JP_VERB( "%0H.%a2つもり", JP_KIND_DA, // j'ai l'intention d'aller en Italie.
JP_PROP_CONDITION,
JP_HINT_SVOO,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_ALL, NULL,
FR_PART_NOUN_GENERAL, JP_PROP_ALL, "intention",
FR_PART_PREPOSIT_DE_INF,JP_PROP_ALL, NULL
),
JP_VERB( "%0H.%2G.痛", JP_KIND_KEIYOSHI, // j'ai mal @ dos.
JP_PROP_CONDITION | JP_PROP_EMOTION,
JP_HINT_SVOO | JP_HINT_HUMAN,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_ALL, NULL,
FR_PART_ADVERB_GENERAL, JP_PROP_ALL, "mal",
FR_PART_PREPOSIT_A, JP_PROP_BODY, NULL
),
// Kgが2ある -> 2Kgがある
JP_VERB( "%1G.", JP_KIND_ARU, // Il y a ...
JP_PROP_CONDITION,
JP_HINT_SVO | JP_HINT_PLACE1_ADVERB,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_IMPERSONAL,JP_PROP_ALL, Is_Il_Y_A,
FR_PART_NOUN_ALL, JP_PROP_UNIT, NULL,
FR_PART_NONE, JP_PROP_NONE, NULL,
Make_Il_Y_A
),
JP_VERB( "%1G.", JP_KIND_ARU, // Il y a ...
JP_PROP_CONDITION,
JP_HINT_SVO | JP_HINT_PLACE1_ADVERB | JP_HINT_VOLUME1_ADVERB,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_IMPERSONAL,JP_PROP_ALL, Is_Il_Y_A,
FR_PART_NOUN_ALL, JP_PROP_ALL, NULL,
FR_PART_NONE, JP_PROP_NONE, NULL,
Make_Il_Y_A
),
JP_VERB( "%0C.%1的なところが", JP_KIND_ARU, // Cet homme a du Julien Sorel.
JP_PROP_CONDITION,
JP_HINT_SVO | JP_HINT_HUMAN,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_HUMAN,
FR_PART_PREPOSIT_DE,JP_PROP_UNIQUE,
FR_PART_NONE, JP_PROP_NONE
),
JP_VERB( "%0N.", JP_KIND_NONE, // ami que j'ai. -> 私の持っている友達 -> 私の友達
JP_PROP_CONDITION,
JP_HINT_SVO | JP_HINT_HUMAN,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_ALL,
FR_PART_NOUN_RELATIVE_OBJECT, JP_PROP_NONE,
FR_PART_NONE, JP_PROP_NONE
),
// Vous n'avez qu'@ appuyer sur le button.
JP_VERB( "%0H.%s1D.良", JP_KIND_KEIYOSHI,
JP_PROP_CONDITION,
JP_HINT_SVO,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_ALL, CheckVerbNegative,
FR_PART_PREPOSIT_A_INF, JP_PROP_ALL, HasAdverbQue,
FR_PART_NONE, JP_PROP_NONE, NULL,
Make_Ne_Avoir_Que_A_INF
),
JP_VERB( "%0H.%a1必要%G", JP_KIND_ARU,
JP_PROP_CONDITION,
JP_HINT_SVO,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_ALL,
FR_PART_PREPOSIT_A_INF, JP_PROP_ALL,
FR_PART_NONE, JP_PROP_NONE
),
// Subject + <avoir> + Adjective
JP_VERB( "%0H.暑", JP_KIND_KEIYOSHI,
JP_PROP_CONDITION,
JP_HINT_SVA,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_HUMAN, NULL,
FR_PART_ADJECTIVE_GENERAL, JP_PROP_ALL, "chaud",
FR_PART_NONE, JP_PROP_NONE, NULL
),
JP_VERB( "%0H.寒", JP_KIND_KEIYOSHI,
JP_PROP_CONDITION,
JP_HINT_SVA,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_HUMAN, NULL,
FR_PART_ADJECTIVE_GENERAL, JP_PROP_ALL, "froid",
FR_PART_NONE, JP_PROP_NONE, NULL
),
// Subject + <avoir> + Noun
JP_VERB( "%0H.%1I.合", JP_KIND_GODAN_WA, // J'ai accident.
JP_PROP_CONDITION,
JP_HINT_SVO | JP_HINT_HUMAN,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_HUMAN, NULL, NULL,
FR_PART_NOUN_GENERAL, JP_PROP_NONE, "accident", NULL,
FR_PART_NONE, JP_PROP_NONE, NULL, NULL
),
JP_VERB( "%0H.%1.年上", JP_KIND_DA, // J'ai deux ans de plus que lui.
JP_PROP_CONDITION,
JP_HINT_SVO | JP_HINT_HUMAN | JP_HINT_COMPARE1,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_HUMAN, NULL, NULL,
FR_PART_NOUN_ALL, JP_PROP_TIME, "an", IsAttribPlus,
FR_PART_NONE, JP_PROP_NONE, NULL, NULL,
MakeNoPlus1
),
JP_VERB( "%0H.%1.年下", JP_KIND_DA, // J'ai deux ans de moins que lui.
JP_PROP_CONDITION,
JP_HINT_SVO | JP_HINT_HUMAN | JP_HINT_COMPARE1,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_HUMAN, NULL, NULL,
FR_PART_NOUN_ALL, JP_PROP_TIME, "an", IsAttribMoins,
FR_PART_NONE, JP_PROP_NONE, NULL, NULL,
NULL
),
JP_VERB( "%0H.才", JP_KIND_DA, // J'ai vingt-cinq ans.
JP_PROP_CONDITION,
JP_HINT_SVO | JP_HINT_HUMAN | JP_HINT_VOLUME1_ADVERB,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_HUMAN, NULL,
FR_PART_NOUN_ALL, JP_PROP_TIME, "an",
FR_PART_NONE, JP_PROP_NONE, NULL
),
JP_VERB( "%0H.%a1G必要", JP_KIND_DA, // j'ai besoin de exercises.
JP_PROP_CONDITION,
JP_HINT_SVO,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_ALL, NULL, NULL,
FR_PART_NOUN_GENERAL, JP_PROP_ALL, "besoin", HasPrepositionDe,
FR_PART_NONE, JP_PROP_NONE, NULL, NULL,
ReplaceObject1De
),
JP_VERB( "%0H.%1", JP_KIND_DA,
JP_PROP_CONDITION,
JP_HINT_SVO | JP_HINT_HUMAN,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_HUMAN, NULL,
FR_PART_NOUN_ALL, JP_PROP_NONE, "cong{",
FR_PART_NONE, JP_PROP_NONE, NULL
),
JP_VERB( "%0H.空腹", JP_KIND_DA,
JP_PROP_CONDITION,
JP_HINT_SVO | JP_HINT_HUMAN,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_HUMAN, NULL,
FR_PART_NOUN_ALL, JP_PROP_NONE, "faim",
FR_PART_NONE, JP_PROP_NONE, NULL
),
JP_VERB( "%0H.行わ", JP_KIND_RERU, // les examens auront lieu demain.
JP_PROP_ACTION,
JP_HINT_SV,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_THING, NULL,
FR_PART_NOUN_GENERAL, JP_PROP_NONE, "lieu",
FR_PART_NONE, JP_PROP_NONE, NULL
),
JP_VERB( "%0H.正し", JP_KIND_KEIYOSHI, // J'ai raison.
JP_PROP_CONDITION,
JP_HINT_SVO | JP_HINT_HUMAN,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_HUMAN, NULL,
FR_PART_NOUN_ALL, JP_PROP_NONE, "raison",
FR_PART_NONE, JP_PROP_NONE, NULL
),
JP_VERB( "%0H.喉が渇いて", JP_KIND_IRU,
JP_PROP_CONDITION,
JP_HINT_SVO | JP_HINT_HUMAN,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_HUMAN, NULL,
FR_PART_NOUN_ALL, JP_PROP_NONE, "soif",
FR_PART_NONE, JP_PROP_NONE, NULL
),
JP_VERB( "%0H.間違って", JP_KIND_IRU,
JP_PROP_CONDITION,
JP_HINT_SVO | JP_HINT_HUMAN,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_HUMAN, NULL,
FR_PART_NOUN_ALL, JP_PROP_NONE, "tort",
FR_PART_NONE, JP_PROP_NONE, NULL
),
JP_VERB( "%0C.%1G.", JP_KIND_IRU,
JP_PROP_CONDITION,
JP_HINT_SVO | JP_HINT_VOLUME1_ADVERB,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_HUMAN,
FR_PART_NOUN_ALL, JP_PROP_HUMAN,
FR_PART_NONE, JP_PROP_NONE
),
JP_VERB( "%0H.%1W.感", JP_KIND_ZIRU,
JP_PROP_CONDITION,
JP_HINT_SVO | JP_HINT_HUMAN,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_HUMAN,
FR_PART_NOUN_ALL, JP_PROP_EMOTION,
FR_PART_NONE, JP_PROP_NONE
),
JP_VERB( "%0H.%1W.持って", JP_KIND_IRU,
JP_PROP_CONDITION,
JP_HINT_SVO | JP_HINT_HUMAN,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_HUMAN,
FR_PART_NOUN_ALL, JP_PROP_UNIT,
FR_PART_NONE, JP_PROP_NONE
),
JP_VERB( "%0H.%1W.持って", JP_KIND_IRU,
JP_PROP_CONDITION,
JP_HINT_SVO | JP_HINT_HUMAN | JP_HINT_VOLUME1_ADVERB,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_HUMAN,
FR_PART_NOUN_ALL, JP_PROP_ALL,
FR_PART_NONE, JP_PROP_NONE
),
JP_VERB( "%0C%1G.", JP_KIND_ARU,
JP_PROP_CONDITION,
JP_HINT_SVO,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_ALL,
FR_PART_NOUN_ALL, JP_PROP_ALL,
FR_PART_NONE, JP_PROP_NONE
),
};
//
// 強調構文になりえるか
//
BOOL
Is_Ce_Noun_Que(TOKEN *s, TOKEN *v)
{
if(IsObjectMatch(s, FR_PART_NOUN_IMPERSONAL)
&& v
&& v->object1
&& !(v->object1->jpEmphasis & JP_EMPHASIS_SENTENCE)
// C'est ce que ...は除外 eg) C'est ce @ quoi je pense.
&& !IsTokenFrench(v->object1, "ce")) {
TOKEN *que = SearchToken(FR_PART_RELATIVE_ALL, v->object1->child);
if(que && (que->frPartChoice & FR_PART_OBJECT))
return(TRUE);
}
return(FALSE);
}
//
// 強調構文を作る
//
void
Make_Ce_Noun_Que(TOKEN *verb)
{
if(verb
&& verb->object1
&& !(verb->object1->jpEmphasis & JP_EMPHASIS_SENTENCE)) {
TOKEN *obj = verb->object1;
TOKEN *que = SearchToken(FR_PART_RELATIVE_ALL, obj->child);
if(que
&& que->frPartChoice & FR_PART_OBJECT) {
TOKEN *altQue = CopyCurrentTree(que, "Make_Ce_Noun_Que", FR_PART_OBJECT);
obj->jpEmphasis |= JP_EMPHASIS_SENTENCE;
verb->subject->prtControl = PRT_CONTROL_DISABLE; // 文法上の主語は表示しない
// ImproveSubjectVerb(que->subject,
TOKEN *article = SearchToken(FR_PART_ARTICLE_ALL, obj->child);
if(article
&& article->prtControl == PRT_CONTROL_DISABLE) {
// 私が記事を書いたのは理由だ。 私が記事を書いたのは<その>理由だ。
article->prtControl = PRT_CONTROL_ENABLE;
}
verb->scoreSelect += SCORE_EMPHASIS_SENTENCE;
}
}
}
BOOL
IsOnlyTime(TOKEN *p)
{
if( (p->jpProp & JP_PROP_TIME)
&& !(p->jpProp & JP_PROP_HUMAN)
&& !(p->jpProp & JP_PROP_THING))
return(TRUE);
return(FALSE);
}
//
// その動詞は、<plus>の副詞を持っているか
//
BOOL
HasVerbPlus(TOKEN *s, TOKEN *v)
{
for(TOKEN *q = v->child; q; q = q->next) {
if(IsTokenFrench(q, "plus"))
return(TRUE);
}
return(FALSE);
}
void
CancelAdverbPlus(TOKEN *sentence)
{
for(TOKEN *q = sentence->child; q; q = q->next) {
if(IsTokenFrench(q, "plus")) {
q->prtControl = PRT_CONTROL_DISABLE;
return;
}
}
PrintInternalError("CancelVerbPlus");
}
const JP_VERB dic_etre[] = {
JP_VERB( "%a2NH.%vts1", JP_KIND_DA, // c'est hier que S + V 昨日 -> 昨日だ
JP_PROP_CONDITION,
JP_HINT_SVA,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_IMPERSONAL, JP_PROP_NONE, NULL,
(FR_PART)(FR_PART_ADJECTIVE_ALL | FR_PART_ADVERB_ALL | FR_PART_NUMETRIC_ALL), JP_PROP_ALL, IsJpKind_NO,
FR_PART_SENTENCE_QUE_ORIGIN, JP_PROP_ALL, NULL
),
JP_VERB( "%a2NH.%tvs1", JP_KIND_NONE, // ce est belle que SV
JP_PROP_CONDITION,
JP_HINT_SVOA,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_IMPERSONAL, JP_PROP_NONE,
(FR_PART)(FR_PART_ADJECTIVE_ALL | FR_PART_ADVERB_ALL | FR_PART_NUMETRIC_ALL), JP_PROP_ALL,
FR_PART_SENTENCE_QUE_ORIGIN, JP_PROP_ALL
),
JP_VERB( "%a2こと%vH.%t1", JP_KIND_NONE, // c'est interessant de causer avec elle.
JP_PROP_CONDITION,
JP_HINT_SVOA,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_IMPERSONAL, JP_PROP_NONE,
(FR_PART)(FR_PART_ADJECTIVE_ALL | FR_PART_ADVERB_ALL), JP_PROP_ALL,
FR_PART_PREPOSIT_DE_INF, JP_PROP_ALL
),
JP_VERB( "%0W%a2こと.%vH1", JP_KIND_NONE, // ce mot est difficile @ traduire.
JP_PROP_CONDITION,
JP_HINT_SVOA,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_ALL,
(FR_PART)(FR_PART_ADJECTIVE_ALL | FR_PART_ADVERB_ALL), JP_PROP_ALL,
FR_PART_PREPOSIT_A_INF, JP_PROP_ALL
),
JP_VERB( "%0H.%s2NI.%vt1", JP_KIND_NONE, // ils sont assez riches pour acheter voiture.
JP_PROP_CONDITION,
JP_HINT_SVOO,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_ALL,
(FR_PART)(FR_PART_ADJECTIVE_ALL | FR_PART_ADVERB_ALL), JP_PROP_ALL,
FR_PART_PREPOSIT_POUR_INF, JP_PROP_ALL
),
JP_VERB( "%0H.%2<にとって>.%1", JP_KIND_DA, // ils sont pour moi un ami.
JP_PROP_CONDITION,
JP_HINT_SVOO,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_ALL,
FR_PART_NOUN_ALL, JP_PROP_ALL,
FR_PART_PREPOSIT_POUR, JP_PROP_ALL
),
JP_VERB( "%0H.%t2", JP_KIND_NONE, // nous sommes le treize.
JP_PROP_CONDITION,
JP_HINT_SVA,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_ALL, NULL,
FR_PART_ARTICLE_DEFINIT, JP_PROP_NONE, IsTokenSingle,
FR_PART_NUMETRIC_ALL, JP_PROP_NONE, NULL,
NULL
),
// Subject + <etre> + Noun + Preposition
JP_VERB( ".%2D何時", JP_KIND_DA, // Quelle heure est-il @ votre montre?
JP_PROP_CONDITION,
JP_HINT_SVA | JP_HINT_DATE_SUBJECT,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_IMPERSONAL, JP_PROP_ALL, "il", NULL,
FR_PART_NOUN_ALL, JP_PROP_ALL, "heure", HasQuel,
FR_PART_PREPOSIT_A, JP_PROP_NONE, "montre", NULL,
NULL
),
JP_VERB( "%0H.%a2ところ", JP_KIND_DA, // il est en train de construire un barrage.
JP_PROP_CONDITION,
JP_HINT_SVOA,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_ALL, NULL,
FR_PART_PREPOSIT_EN, JP_PROP_ALL, "train",
FR_PART_PREPOSIT_DE_INF, JP_PROP_ALL, NULL
),
JP_VERB( "%0H.まさに%l2うとして", JP_KIND_IRU, // l'avion est sur le point de d{coller.
JP_PROP_CONDITION,
JP_HINT_SVOA,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_ALL, NULL,
FR_PART_PREPOSIT_SUR, JP_PROP_ALL, "point",
FR_PART_PREPOSIT_DE_INF, JP_PROP_ALL, NULL
),
// Subject + <etre> + Adject / Adverb
JP_VERB( "%a0H.%t1", JP_KIND_NONE, // Changer est plaisir.
JP_PROP_CONDITION,
JP_HINT_SVA,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_VERB, JP_PROP_NONE,
(FR_PART)(FR_PART_ADJECTIVE_ALL | FR_PART_ADVERB_ALL), JP_PROP_ALL,
FR_PART_NONE, JP_PROP_NONE
),
JP_VERB( "%0H.%f1", JP_KIND_IRU, // je suis ici,
JP_PROP_CONDITION,
JP_HINT_SVO | JP_HINT_HUMAN,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_HUMAN,
(FR_PART)(FR_PART_ADJECTIVE_ALL | FR_PART_ADVERB_ALL), JP_PROP_PLACE,
FR_PART_NONE, JP_PROP_NONE
),
// Subject + <etre> + Preposition
JP_VERB( "%0H.%1I.", JP_KIND_ARU, // c'est @ Paris. パリで -> パリに
JP_PROP_CONDITION,
JP_HINT_SVA,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_THING,
FR_PART_PREPOSIT_A, JP_PROP_ALL,
FR_PART_NONE, JP_PROP_NONE
),
JP_VERB( "%0H.%1のもの", JP_KIND_KEIYODOSHI, // c'est @ moi.
JP_PROP_CONDITION,
JP_HINT_SVA,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_ALL,
FR_PART_PREPOSIT_A, JP_PROP_CONDITION,
FR_PART_NONE, JP_PROP_NONE
),
JP_VERB( "%0H.%1T", JP_KIND_IRU,
JP_PROP_CONDITION,
JP_HINT_SVO | JP_HINT_HUMAN, // subjectをJP_HINT_HUMANにするため
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_ALL,
FR_PART_PREPOSIT_AVEC, JP_PROP_HUMAN,
FR_PART_NONE, JP_PROP_NONE
),
JP_VERB( "%0H.%1出身", JP_KIND_DA, // je suis de Paris. パリ出身だ
JP_PROP_CONDITION,
JP_HINT_SVO | JP_HINT_HUMAN,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_ALL,
FR_PART_PREPOSIT_DE,JP_PROP_PLACE,
FR_PART_NONE, JP_PROP_NONE
),
JP_VERB( "%0H.%1I", JP_KIND_IRU, // je suis @ Paris. パリで -> パリに
JP_PROP_CONDITION,
JP_HINT_SVO | JP_HINT_HUMAN,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_HUMAN,
FR_PART_PREPOSIT_A, JP_PROP_ALL,
FR_PART_NONE, JP_PROP_NONE
),
JP_VERB( "%0H.%vc1", JP_KIND_IRU,
// JP_PROP_HUMANのために、FR_PART_PREPOSIT_ALLにまとめられない
// まとめると, chez elleのelleがPROP_HUMANにならない。
JP_PROP_CONDITION,
JP_HINT_SVO,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_ALL,
FR_PART_PREPOSIT_CHEZ, JP_PROP_HUMAN,
FR_PART_NONE, JP_PROP_NONE
),
JP_VERB( "%0H.%1Nよう", JP_KIND_DA,
JP_PROP_CONDITION,
JP_HINT_SVA,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_ALL,
FR_PART_PREPOSIT_COMME, JP_PROP_ALL,
FR_PART_NONE, JP_PROP_NONE
),
JP_VERB( "%0H.%1的", JP_KIND_DA, // Ce tableau est du Delacroix.
JP_PROP_CONDITION,
JP_HINT_SVO,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_ALL,
FR_PART_PREPOSIT_DE,JP_PROP_UNIQUE,
FR_PART_NONE, JP_PROP_NONE
),
JP_VERB( "%0H.%a1", JP_KIND_DA, // il est en danger.
JP_PROP_CONDITION,
JP_HINT_SVA,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_ALL, NULL,
FR_PART_PREPOSIT_EN, JP_PROP_NONE, "danger",
FR_PART_NONE, JP_PROP_NONE, NULL
),
JP_VERB( "%0H.%1Dできて", JP_KIND_IRU, // ces maison suis en bois.
JP_PROP_CONDITION,
JP_HINT_SVO,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_THING,
FR_PART_PREPOSIT_EN, JP_PROP_MATERIAL,
FR_PART_NONE, JP_PROP_NONE
),
JP_VERB( "%0H.%1I", JP_KIND_IRU, // Nous sommes en France.
JP_PROP_CONDITION,
JP_HINT_SVO | JP_HINT_HUMAN,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_HUMAN,
FR_PART_PREPOSIT_EN, JP_PROP_PLACE,
FR_PART_NONE, JP_PROP_NONE
),
JP_VERB( "%0H.%1N中に", JP_KIND_ARU, // Nos vrai ennemis sont en nous-m]mes.
JP_PROP_CONDITION,
JP_HINT_SVO,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_ALL,
FR_PART_PREPOSIT_EN, JP_PROP_ALL,
FR_PART_NONE, JP_PROP_NONE
),
JP_VERB( "%0H.%vc1", JP_KIND_IRU, // je suis dans la voiture.
JP_PROP_CONDITION,
JP_HINT_SVO | JP_HINT_HUMAN, // SVAではない。 je vais @ l'JP_VERB(cole.と同様に考える
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_HUMAN,
FR_PART_PREPOSIT_ALL, JP_PROP_ALL,
FR_PART_NONE, JP_PROP_NONE
),
JP_VERB( "%0H.%cv1", JP_KIND_ARU, // c'est sur la table.
JP_PROP_CONDITION,
JP_HINT_SVO,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_THING | JP_PROP_PLACE | JP_PROP_CONDITION,
FR_PART_PREPOSIT_ALL, JP_PROP_ALL,
FR_PART_NONE, JP_PROP_NONE
),
// Subject + <etre> + Verb
JP_VERB( "%0H.%a1U", JP_KIND_DA,
JP_PROP_CONDITION,
JP_HINT_SVA,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, (JP_PROP)(JP_PROP_THING | JP_PROP_PLACE),
FR_PART_VERB_INF, JP_PROP_ALL,
FR_PART_NONE, JP_PROP_NONE
),
JP_VERB( ".%s1", JP_KIND_NONE, // c'est que
JP_PROP_CONDITION,
JP_HINT_SVA,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_IMPERSONAL, JP_PROP_ALL,
FR_PART_SENTENCE_QUE_ORIGIN,JP_PROP_ALL,
FR_PART_NONE, JP_PROP_NONE
),
// Subject + <etre> + Adjective / Adverb
// C'est beau. それは美しい > それは美だ
JP_VERB( "%0H.%t1", JP_KIND_NONE,
JP_PROP_CONDITION,
JP_HINT_SVA,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_ALL,
(FR_PART)(FR_PART_ADJECTIVE_ALL | FR_PART_ADVERB_ALL | FR_PART_NUMETRIC_ALL), JP_PROP_ALL,
FR_PART_NONE, JP_PROP_NONE
),
JP_VERB( ".%c1", JP_KIND_SAHEN, // 命令形 sois severe!
JP_PROP_CONDITION,
JP_HINT_NONE,
FR_COMPOSE_AVOIR,
FR_PART_NONE, JP_PROP_HUMAN,
(FR_PART)(FR_PART_ADJECTIVE_ALL | FR_PART_ADVERB_ALL), JP_PROP_ALL,
FR_PART_NONE, JP_PROP_NONE
),
// Subject + <etre> + Noun
JP_VERB( "%0H.%s1", JP_KIND_DA,
JP_PROP_CONDITION,
JP_HINT_SVA | JP_HINT_DATE_SUBJECT,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_IMPERSONAL, JP_PROP_ALL, Is_Ce_Noun_Que,
FR_PART_NOUN_ALL, JP_PROP_ALL, NULL,
FR_PART_NONE, JP_PROP_NONE, NULL,
Make_Ce_Noun_Que
),
JP_VERB( ".何時", JP_KIND_DA,
JP_PROP_CONDITION,
JP_HINT_SVA | JP_HINT_DATE_SUBJECT,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_IMPERSONAL, JP_PROP_ALL, "il", NULL,
FR_PART_NOUN_ALL, JP_PROP_ALL, "heure", HasQuel,
FR_PART_NONE, JP_PROP_NONE, NULL, NULL,
NULL
),
JP_VERB( "%0H.年上", JP_KIND_DA, // je suis plus [g{.
JP_PROP_CONDITION,
JP_HINT_SVA | JP_HINT_HUMAN,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_HUMAN, NULL, HasVerbPlus,
FR_PART_NOUN_ALL, JP_PROP_NONE, "[ge", IsAttribPlus,
FR_PART_NONE, JP_PROP_NONE, NULL, NULL,
CancelAdverbPlus
),
JP_VERB( "%0H.年上", JP_KIND_DA,
JP_PROP_CONDITION,
JP_HINT_SVA | JP_HINT_HUMAN,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_HUMAN, NULL, HasVerbPlus,
FR_PART_NOUN_ALL, JP_PROP_NONE, "[g{", NULL,
FR_PART_NONE, JP_PROP_NONE, NULL, NULL,
CancelAdverbPlus
),
JP_VERB( ".%1", JP_KIND_DA,
JP_PROP_CONDITION,
JP_HINT_SVA | JP_HINT_DATE_SUBJECT,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_IMPERSONAL, JP_PROP_ALL, "il", NULL,
FR_PART_NOUN_ALL, JP_PROP_ALL, NULL, IsOnlyTime,
FR_PART_NONE, JP_PROP_NONE, NULL, NULL,
NULL
),
JP_VERB( ".%s1", JP_KIND_DA, // c'etais mercredi hier.
JP_PROP_CONDITION,
JP_HINT_SVA | JP_HINT_DATE_SUBJECT,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_IMPERSONAL, JP_PROP_ALL,
FR_PART_NOUN_GENERAL, JP_PROP_DATE,
FR_PART_NONE, JP_PROP_NONE
),
// 命令形用の訳
JP_VERB( ".%1Iな", JP_KIND_GODAN_RA, // sois humain!
JP_PROP_CONDITION,
JP_HINT_SVA,
FR_COMPOSE_AVOIR,
FR_PART_NONE, JP_PROP_NONE,
FR_PART_NOUN_ALL, JP_PROP_ALL,
FR_PART_NONE, JP_PROP_NONE
),
JP_VERB( "%0H.%s1", JP_KIND_DA,
JP_PROP_CONDITION,
JP_HINT_SVA,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_ALL,
FR_PART_NOUN_ALL, JP_PROP_ALL,
FR_PART_NONE, JP_PROP_NONE
),
};
char *FaireAdjectiveList[] = {
"chaud",
"froid",
"",
};
//
// <faire>に付くと形容詞になるか
// Il fait chaud. -> 暑い
//
BOOL
IsFaireAdjective(TOKEN *p)
{
char **s = FaireAdjectiveList;
int i;
for(i = 0; s[i][0]; i++) {
if(IsTokenFrench(p, s[i]))
return(TRUE);
}
return(FALSE);
}
char *FaireActionList[] = {
"devoir", // 宿題を作る -> 宿題をする
"", // End Code
};
BOOL
IsFaireAction(TOKEN *p)
{
char **s = FaireActionList;
int i;
for(i = 0; s[i][0]; i++) {
if(IsTokenFrench(p, s[i]))
return(TRUE);
}
return(FALSE);
}
BOOL
IsNotJpPropAll(TOKEN *p)
{
if(p && p->jpProp == JP_PROP_ALL)
return(FALSE);
else
return(TRUE);
}
void
MakeObject1Thing(TOKEN *sentence)
{
if(sentence
&& sentence->object2
&& sentence->object2->object1
&& IsObjectMatch(sentence->object2->object1, FR_PART_NOUN_OBJECT_BOTH)) {
TOKEN *obj = sentence->object2->object1;
SelectJpPronoun2(obj, JP_PROP_THING, JP_PROP_ALL);
}
}
const JP_VERB dic_faire[] = {
JP_VERB( "%0H.%1W.%f2", JP_KIND_SERU,
JP_PROP_ACTION,
JP_HINT_SVOV,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_ALL,
FR_PART_NOUN_ALL, JP_PROP_HUMAN,
FR_PART_VERB_INF, JP_PROP_ACTION
),
JP_VERB( "%0H.%1W%f2.", JP_KIND_NONE,
JP_PROP_ACTION,
JP_HINT_SVOV,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_ALL,
FR_PART_NOUN_ALL, JP_PROP_ALL,
FR_PART_VERB_INF, JP_PROP_ACTION
),
JP_VERB( "%0H.%1W.歩", JP_KIND_GODAN_KA, // je fais douze lieues @ pied.
JP_PROP_ACTION,
JP_HINT_SVOO | JP_HINT_HUMAN,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_HUMAN, NULL,
FR_PART_NOUN_ALL, JP_PROP_PLACE, NULL,
FR_PART_PREPOSIT_A, JP_PROP_ALL, "pied"
),
JP_VERB( "%0H.%2I%s1.", JP_KIND_SAHEN, // je fais de l'oeil @ lui. -> 彼に目配せをする
JP_PROP_ACTION,
JP_HINT_SVOO | JP_HINT_HUMAN,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_HUMAN,
FR_PART_NOUN_ALL, JP_PROP_ACTION,
FR_PART_PREPOSIT_A, JP_PROP_HUMAN
),
JP_VERB( "%0H.%2W.%1I", JP_KIND_SAHEN, // faire un mus{e d'une {glise desaffect{e
JP_PROP_ACTION,
JP_HINT_SVOA | JP_HINT_HUMAN,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_ALL,
FR_PART_NOUN_ALL, JP_PROP_ALL,
FR_PART_PREPOSIT_DE, JP_PROP_ALL
),
// Subject + <faire> + Preposition
// Je fait comme Descates.
JP_VERB( "%0H.%1Nように", JP_KIND_SAHEN,
JP_PROP_CONDITION,
JP_HINT_SVA,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_ALL,
FR_PART_PREPOSIT_COMME, JP_PROP_ALL,
FR_PART_NONE, JP_PROP_NONE
),
// Subject + <faire> + Adjective -1-
// il fait chaud. 熱い -> 暑い
JP_VERB( ".暑", JP_KIND_KEIYOSHI,
JP_PROP_CONDITION,
JP_HINT_SVA,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_IMPERSONAL, JP_PROP_NONE, "il",
FR_PART_ADJECTIVE_GENERAL, JP_PROP_NONE, "chaud",
FR_PART_NONE, JP_PROP_NONE, NULL
),
// il fait doux.
JP_VERB( ".暖か", JP_KIND_KEIYOSHI,
JP_PROP_CONDITION,
JP_HINT_SVA,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_IMPERSONAL, JP_PROP_NONE, "il",
FR_PART_ADJECTIVE_GENERAL, JP_PROP_NONE, "doux",
FR_PART_NONE, JP_PROP_NONE, NULL
),
// il fait frais. 寒い -> 涼しい
JP_VERB( ".涼し", JP_KIND_KEIYOSHI,
JP_PROP_CONDITION,
JP_HINT_SVA,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_IMPERSONAL, JP_PROP_NONE, "il",
FR_PART_ADJECTIVE_GENERAL, JP_PROP_NONE, "frais",
FR_PART_NONE, JP_PROP_NONE, NULL
),
// il fait noir.
JP_VERB( ".暗くな", JP_KIND_GODAN_RA,
JP_PROP_CONDITION,
JP_HINT_SVA,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_IMPERSONAL, JP_PROP_NONE, "il",
FR_PART_ADJECTIVE_GENERAL, JP_PROP_NONE, "noir",
FR_PART_NONE, JP_PROP_NONE, NULL
),
// il fait froid.
JP_VERB( ".%tv1", JP_KIND_NONE,
JP_PROP_CONDITION,
JP_HINT_SVA,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_IMPERSONAL, JP_PROP_ALL, NULL,
FR_PART_ADJECTIVE_GENERAL, JP_PROP_ALL, IsFaireAdjective,
FR_PART_NONE, JP_PROP_NONE, NULL
),
// Subject + <faire> + Noun
JP_VERB( "%0H.%1W.払", JP_KIND_GODAN_WA,
JP_PROP_ACTION,
JP_HINT_SVO,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_ALL, NULL,
FR_PART_NOUN_ALL, JP_PROP_NONE, "attention",
FR_PART_NONE, JP_PROP_NONE, NULL
),
JP_VERB( "%0H.%1W.おこ", JP_KIND_GODAN_SA,
JP_PROP_ACTION,
JP_HINT_SVO,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_ALL, NULL,
FR_PART_NOUN_ALL, JP_PROP_NONE, "feu",
FR_PART_NONE, JP_PROP_NONE, NULL
),
JP_VERB( ".%a1暑さ", JP_KIND_DA,
JP_PROP_ACTION,
JP_HINT_SVO,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_IMPERSONAL,JP_PROP_ALL, "il", NULL,
FR_PART_NOUN_ALL, JP_PROP_WEATHER, "chaleur", NULL,
FR_PART_NONE, JP_PROP_NONE, NULL, NULL,
ReplaceObject1
),
JP_VERB( "夜が.明", JP_KIND_KERU,
JP_PROP_ACTION,
JP_HINT_SVO,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_IMPERSONAL,JP_PROP_ALL, "il",
FR_PART_NOUN_ALL, JP_PROP_NONE, "jour",
FR_PART_NONE, JP_PROP_NONE, NULL
),
JP_VERB( ".夜にな", JP_KIND_GODAN_RA,
JP_PROP_ACTION,
JP_HINT_SVO,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_IMPERSONAL,JP_PROP_ALL, "il",
FR_PART_NOUN_ALL, JP_PROP_NONE, "nuit",
FR_PART_NONE, JP_PROP_NONE, NULL
),
JP_VERB( ".%a1天気", JP_KIND_DA,
JP_PROP_ACTION,
JP_HINT_SVO,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_IMPERSONAL,JP_PROP_ALL, "il", NULL,
FR_PART_NOUN_ALL, JP_PROP_WEATHER, "temps", NULL,
FR_PART_NONE, JP_PROP_NONE, NULL, NULL,
ReplaceObject1
),
JP_VERB( "%a1G.吹", JP_KIND_GODAN_KA,
JP_PROP_ACTION,
JP_HINT_SVO,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_IMPERSONAL,JP_PROP_ALL, "il",
FR_PART_NOUN_ALL, JP_PROP_NONE, "vent",
FR_PART_NONE, JP_PROP_NONE, NULL
),
JP_VERB( "%0H.%1W.", JP_KIND_SAHEN,
JP_PROP_ACTION,
JP_HINT_SVO | JP_HINT_HUMAN,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_ALL, NULL,
FR_PART_NOUN_GENERAL, JP_PROP_NONE, IsFaireAction,
FR_PART_NONE, JP_PROP_NONE, NULL,
NULL
),
JP_VERB( "%0H.%1W.育", JP_KIND_TERU,
JP_PROP_ACTION,
JP_HINT_SVO,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_ALL, NULL,
FR_PART_NOUN_ALL, JP_PROP_HUMAN, IsNotJpPropAll,
FR_PART_NONE, JP_PROP_NONE, NULL,
NULL
),
JP_VERB( "%0H.%1W.作", JP_KIND_GODAN_RA,
JP_PROP_ACTION,
JP_HINT_SVO,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_ALL, NULL,
FR_PART_NOUN_ALL, JP_PROP_THING, IsNotJpPropAll,
FR_PART_NONE, JP_PROP_NONE, NULL,
NULL
),
JP_VERB( "%0H.%1W.", JP_KIND_SAHEN, // je fais
JP_PROP_ACTION,
JP_HINT_SVO | JP_HINT_HUMAN,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_ALL, NULL,
FR_PART_NOUN_ALL, JP_PROP_ACTION, NULL,
FR_PART_NONE, JP_PROP_NONE, NULL,
MakeObject1Thing
),
// Subject + <faire> + Adjective -2-
JP_VERB( "%a1天気.", JP_KIND_DA, // il fait beau.
JP_PROP_CONDITION,
JP_HINT_SVO, FR_COMPOSE_AVOIR,
FR_PART_NOUN_IMPERSONAL,JP_PROP_ALL,
FR_PART_ADJECTIVE_ALL, JP_PROP_WEATHER,
FR_PART_NONE, JP_PROP_NONE
),
JP_VERB( "%t1.", JP_KIND_NONE, // Il fait trois heurese.
JP_PROP_ACTION,
JP_HINT_SVA,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_IMPERSONAL,JP_PROP_ALL,
FR_PART_ADJECTIVE_ALL, JP_PROP_TIME | JP_PROP_WEATHER,
FR_PART_NONE, JP_PROP_NONE
),
JP_VERB( "%0H.%tc1.み", JP_KIND_SHIMOICHI, // Elle fait vieux 彼女は老けてみえる
JP_PROP_CONDITION,
JP_HINT_SVA,
FR_COMPOSE_AVOIR,
FR_PART_NOUN_ALL, JP_PROP_ALL,
FR_PART_ADJECTIVE_ALL, JP_PROP_ALL,
FR_PART_NONE, JP_PROP_NONE
),
};
//
// PatternMatchingに用いているので、etre, avoirの場所は変えてはいけない
//
VERB verbTable1[] = {
{ "]tre", "", 2, JPVERB_DIC(dic_etre) },
{ "avoir", "", 1, JPVERB_DIC(dic_avoir) },
{ "aller", "", 14, JPVERB_DIC(dic_aller) },
{ "faire", "f", 63, JPVERB_DIC(dic_faire) },
{ "", "", 0,NULL, } // End code
};